@startuml


rectangle {
    (Update)
    (Application)
}

:User: ---> Application: используя HTTP,\nработает с
Application <- Update: обновляет файлы

(Manager)
(File server) as server
(Downloader) as downloader
(Verifier)
(Storage)
(Message bus) as kafka
(Security monitor) as monitor
artifact "application update" as update
artifact "update files" as updates

update ..> server: хранится в
:User: ..> server: используя REST,\nзапрашивает цифровую подпись\nобновления у
downloader -up-> server: используя HTTP,\nскачивает из
updates ..> Storage: хранится в

Update -down-> kafka
downloader -down-> kafka
Storage -down-> kafka
Manager -down-> kafka
Verifier -down-> kafka
monitor -up-> kafka


@enduml